package com.lyuewei.ringtone;

import android.app.Activity;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.provider.Settings;

import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

public class PermissionUtils {

    /**
     * 检查是否拥有修改“请勿打扰”状态的权限。
     * 在 API 23 及以上版本需要此权限。
     */
    public static boolean hasDndPermission(Context context) {
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        if (notificationManager != null) {
            return notificationManager.isNotificationPolicyAccessGranted();
        }
        return false; // 如果获取 NotificationManager 失败，则认为没有权限
    }

    /**
     * 如果没有修改“请勿打扰”状态的权限，引导用户去设置页面授予权限。
     * 在调用此方法前，请先使用 hasDndPermission() 进行检查。
     */
    public static void requestDndPermission(Context context) {
        // 注意：这个方法只能在 Activity 中调用，或者使用 Application Context，
        // 但直接从非 Activity Context 启动设置界面可能需要 FLAG_ACTIVITY_NEW_TASK 标志。
        // 建议在用户界面（例如 Activity）中引导用户去设置。
        Intent intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
        // 如果是从非 Activity Context 启动，需要添加以下标志
        // intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        try {
            context.startActivity(intent);
        } catch (Exception e) {
            // 处理无法启动设置页面的情况，例如设备不支持
            e.printStackTrace();
        }
    }

}